A read only memory (ROM) is a nonvolatile memory that is programmed at process time with a binary 1 or 0. FIG. 1 illustrates one design of a ROM as typically used today. In this ROM, the bitline precharge control 4 controls the precharging of the bitlines, and the existence of a plug transistor 11 indicates that the bitcell is programmed with a 0. Likewise, the lack of a plug transistor indicates that the bitcell is programmed with a 1. Multiplexer 2 electrically couples the accessed bitline with selected bitline 5, which is inputted to the sense amplifier to produce the ROM output. When a bitcell is accessed through multiplexer 2, all of the bitlines having a plug along the selected wordline 3 are discharged whether or not these particular bitcells were being accessed. Therefore, before a new bitcell is accessed, each bitline that was discharged must once again be precharged by bitline precharge control 4. This scheme is not power efficient since all of the bitlines containing plugs along the accessed wordline are precharged and discharged each time a bitcell is accessed. Therefore, a different scheme such as illustrated in FIG. 2 has also been implemented to address the power inefficiencies of the scheme of FIG. 1.
FIG. 2 illustrates a traditional ROM using a small (weak) pull-up device 18. In operation, the small pull-up device 18 pulls up the selected bitline 10, yet it is much weaker as compared to plug transistor 11 so that plug transistor 11 can overcome device 18 and pull down selected bitline 10. As memory arrays increase in size, though, the bitlines become more heavily loaded, thus the pull-up time of pull-up device 18 increases. That is, the time required for the pull-up device 18 to pull up selected bitline 10 increases. Therefore, as ROM sizes continue to increase, a need exists for a memory scheme that is both power efficient and has a faster pull-up time.